1. Field
Embodiments of the invention relate to synchronizing data. More specifically, embodiments of the invention relate to techniques for synchronizing a primary data system with an auxiliary data system.
2. Description of the Related Art
Auxiliary data systems process data for a primary data system. An example of a primary data system is a content management system. An example of an auxiliary data system is a text indexing system for the content management system. A content management system (CMS) generally refers to a software application for managing work flow to collaboratively create, edit, and/or review various kinds of digital media and electronic text. Similarly, a text indexing system generally refers to a software application that creates and maintains a search index for the CMS.
Synchronizing the auxiliary data system with the primary data system upon restoring (or restarting) the primary data system presents challenges. To keep the primary data system and the auxiliary data system synchronized, the primary data system and the auxiliary data system may be backed up synchronously. For example, the primary data system and the auxiliary data system may both be shut down so that no changes can be made to either system. The primary data system and the auxiliary data system may be backed up. However, shutting down the primary data system and the auxiliary data system for a synchronous backup may be impractical and/or unacceptable in high-availability systems, especially, if the primary data system and/or the auxiliary data system is scaled across many nodes.
Alternatively, the auxiliary data system may discard and rebuild auxiliary data (e.g., a text index) to synchronize the primary data system and the auxiliary data system upon restoring (or restarting) the primary data system. However, rebuilding the auxiliary data may be time consuming and inefficient, as many elements of the index may be unchanged, but nevertheless rebuilt from scratch. Further, features (e.g., searching the CMS) provided by the auxiliary data system may be unavailable while the auxiliary data is being rebuilt. It may be unacceptable for the features to be unavailable for an extended period of time while rebuilding the auxiliary data system.